home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 22 / PC Actual CD 22.iso / progs / Netobj / CDK / NetObjectsFusionCDK5_97.exe / _SETUP.1 / SitemapComp.java < prev    next >
Encoding:
Java Source  |  1997-05-15  |  5.5 KB  |  178 lines

  1. import ComponentApp;
  2.  
  3. public class SitemapComp extends ComponentApp
  4. {
  5.     int idApplet[];
  6.     int idImage;
  7.     int idScript;
  8.     DAssetManager assMan;
  9.     String m_codebase;
  10.     DDrawPicture thePicture;
  11.  
  12.     public String onInstall(DAssetManager cam, String codebase) 
  13.     { 
  14.         m_codebase = codebase;
  15.         assMan = cam;        
  16.         return "Site Mapper";
  17.     }
  18.  
  19.     public void onInspect(CStringArray Names,CStringArray Types)
  20.     { 
  21.         Names.Set("Image");
  22.         Types.Set(typeImage);
  23.     }
  24.  
  25.     public String PropertyListener(String Event,String Value,int Get, int propIndex, IDInspector insp) 
  26.     {        
  27.         if (Get == 1)    // return a value
  28.         {
  29.             if (Event.compareTo("Image")==0)
  30.             {
  31.                 return Integer.toString(idImage);
  32.             }            
  33.         }        
  34.         else    // user set a value
  35.         {
  36.             if (Event.compareTo("Image")==0)
  37.             {                
  38.                 assMan.RemoveAsset(idImage);
  39.                 idImage = Integer.parseInt(Value,10);
  40.                 thePicture.setImageFile(assMan.GetAssetLocation(idImage, IAssetContext.Preview, IFileNameStyle.DosName));
  41.             }
  42.         }        
  43.         return "";
  44.     }
  45.  
  46.     public void onDrop(IDLayout layout, IDRect r, int fDrop) 
  47.     {
  48.         if (fDrop == ActivateState.Drop)  // the first time the component is dropped
  49.         {
  50.             idApplet = new int[12];        
  51.             idImage = assMan.AddAsset(m_codebase+"Sitemapper.gif",IAssetType.Image,"");    
  52.             
  53.             idApplet[0] = assMan.AddAsset(m_codebase + "Sitemapper.class",IAssetType.Applets,"");                            
  54.             idApplet[1] = assMan.AddAsset(m_codebase + "button_panel.class",IAssetType.Applets,"");
  55.             idApplet[2] = assMan.AddAsset(m_codebase + "check_box_panel.class",IAssetType.Applets,"");
  56.             idApplet[3] = assMan.AddAsset(m_codebase + "image_button.class",IAssetType.Applets,"");
  57.             idApplet[4] = assMan.AddAsset(m_codebase + "nav_canvas.class",IAssetType.Applets,"");
  58.             idApplet[5] = assMan.AddAsset(m_codebase + "outline_list.class",IAssetType.Applets,"");
  59.             idApplet[6] = assMan.AddAsset(m_codebase + "search_panel.class",IAssetType.Applets,"");
  60.             idApplet[7] = assMan.AddAsset(m_codebase + "tree_entry.class",IAssetType.Applets,"");
  61.             idApplet[8] = assMan.AddAsset(m_codebase + "tree_grid_builder.class",IAssetType.Applets,"");
  62.             idApplet[9] = assMan.AddAsset(m_codebase + "web_structure_builder.class",IAssetType.Applets,"");
  63.             idApplet[10] = assMan.AddAsset(m_codebase + "Sitemapper.cab",IAssetType.Applets,"");
  64.             idApplet[11] = assMan.AddAsset(m_codebase + "Sitemapper.zip",IAssetType.Applets,"");
  65.             
  66.  
  67.             thePicture = new DDrawPicture();
  68.             thePicture.SetPositionRect(r.getLeft(), r.getTop(), r.getRight(), r.getBottom());
  69.             String bmpFile = assMan.GetAssetLocation(idImage,IAssetContext.Local,1);            
  70.             thePicture.setImageFile(bmpFile);            
  71.             
  72.             thePicture.setHTMLBefore("<a href =\"#\" target=_self onclick=\"go();\">");                    
  73.             thePicture.setHTMLAfter("</a>");            
  74.             layout.AddObject(thePicture);
  75.             idScript = assMan.AddAsset("script_layout", IAssetType.JavaScript,"");                                    
  76.             IDLayout currentILayout = thePicture.getLayout();
  77.             IDSite site  = currentILayout.getSite();        
  78.             site.setGenerateSiteMap(true); 
  79.         }
  80.     }
  81.     
  82.     public void onPublish(DAssetManager asm, int context)     
  83.     {
  84.         updateSitemapperHTML(context);    
  85.         DFile file = new DFile();
  86.         
  87.         IDLayout currentILayout = thePicture.getLayout();
  88.         String homePath = currentILayout.GetHomePath();
  89.  
  90.         
  91.         if (homePath.compareTo(".\\") == 0 || homePath.compareTo(".:") == 0)  // component is on the home page
  92.         {
  93.             file.Open(m_codebase + "script_layout.txt", FileOpenMode.modeRead);
  94.         }
  95.         else                        // component is on sub-page
  96.         {
  97.             file.Open(m_codebase + "script_layout2.txt", FileOpenMode.modeRead);
  98.         }
  99.  
  100.         String scriptText  = file.ReadString(10000);                
  101.         file.Close();
  102.         assMan.InsertScript("script_layout", scriptText);
  103.     }
  104.  
  105.     public void updateSitemapperHTML(int context)
  106.     {
  107.         DMessageBox d = new DMessageBox();
  108.         DFile dummy=new DFile();
  109.         String pathChar = dummy.GetPathChar();
  110.         String fileLocation=dummy.getExeLocation()+"NetObjects System" + pathChar;
  111.         String sitemapper1 = (fileLocation + "Sitemapper.part1");
  112.         String sitemapper2 = (fileLocation + "Sitemapper.part2");
  113.         String sitemapperHTML = (fileLocation + "Sitemapper.html");
  114.         DFile inFile= new DFile();                                    
  115.         DFile outFile = new DFile();                                    
  116.         if(outFile.Open(sitemapperHTML, FileOpenMode.modeWrite|FileOpenMode.modeCreate)==false)            
  117.         {
  118.             d.Alert("Unable to open file "+sitemapperHTML+"\r\n");
  119.             return;
  120.         }
  121.         if(inFile.Open(sitemapper1, FileOpenMode.modeRead)==false)
  122.         {
  123.             d.Alert("Unable to open file "+sitemapper1+"\r\n");
  124.             return;
  125.         }
  126.  
  127.         String buffer;
  128.         buffer=inFile.ReadString(10000);
  129.         outFile.WriteString(buffer,-1);
  130.         inFile.Close();
  131.         
  132.         if (context == IAssetContext.Local || context == IAssetContext.Preview)
  133.         {
  134.             m_codebase.replace('\\','/');
  135.             outFile.WriteString(" CODEBASE=\"file:///"+m_codebase+"\"",-1);
  136.         }
  137.         
  138.         if(inFile.Open(sitemapper2, FileOpenMode.modeRead)==false)
  139.         {
  140.             d.Alert("Unable to open file "+sitemapper2+"\r\n");
  141.             return;
  142.         }
  143.  
  144.         buffer=inFile.ReadString(10000);
  145.         outFile.WriteString(buffer,-1);
  146.         inFile.Close();
  147.         outFile.Close();    
  148.     }
  149.  
  150.     private void debug(String out)
  151.     {
  152.         DMessageBox d = new DMessageBox();
  153.         d.Trace(out);
  154.     }
  155.     
  156.     protected void finalize()
  157.     {
  158.         for (int i=0;i<12;i++)
  159.             assMan.RemoveAsset(idApplet[i]);
  160.         assMan.RemoveAsset(idImage);
  161.         assMan.RemoveAsset(idScript);
  162.     }    
  163.  
  164.     public void onCopy()
  165.     {
  166.         assMan.CopyAsset(idImage);
  167.         assMan.CopyAsset(idScript);
  168.  
  169.         int tempIdApplet[] = new int[12];
  170.     
  171.         for (int i=0; i < 12; i++)
  172.         {
  173.             tempIdApplet[i] = idApplet[i];
  174.             assMan.CopyAsset(idApplet[i]);
  175.         }
  176.         idApplet = tempIdApplet;
  177.     }
  178. }